/****************************************************************************
 *  QLyrics - A simple lyrics viewer.                                       *
 *  Copyright (C) 2008  hsys <hanshuiys@gmail.com>                          *
 *                                                                          *
 *  This program is free software; you can redistribute it and/or modify    *
 *  it under the terms of the GNU General Public License as published by    *
 *  the Free Software Foundation; either version 3 of the License, or       *
 *  (at your option) any later version.                                     *
 *                                                                          *
 *  This program is distributed in the hope that it will be useful,         *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of          *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
 *  GNU General Public License for more details.                            *
 *                                                                          *
 *  You should have received a copy of the GNU General Public License       *
 *  along with this program; if not, write to the Free Software Foundation, *
 *  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA       *
 ****************************************************************************/

#ifndef _CONFIGMANAGER_H_
#define _CONFIGMANAGER_H_

#include <QSettings>
#include <QDir>

/** This class is used to load and save all configure data. */
class ConfigManager : public QSettings {
    Q_OBJECT
public:
    /** Get the pointer of instance of the class, since the class is a singleton. */
    static ConfigManager* getInstance();
    static void buildInstance(QObject* parent = 0);
    /** Returns the value for setting key. If the setting doesn't exist, returns default value. */
    //using QSettings::value;
    /** Sets the value of setting key. */
    //using QSettings::setValue;

private:
    ConfigManager(QString filename, QObject* parent = 0)
        : QSettings(filename, QSettings::IniFormat, parent) {};

    static ConfigManager* sm_inst;
};

#endif
